/*
 * jQuery UI 1.6rc6
 *
 * Copyright (c) 2009 AUTHORS.txt (http://ui.jquery.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
(function(c) {
	var i = c.fn.remove, d = c.browser.mozilla
			&& (parseFloat(c.browser.version) < 1.9);
	c.ui = {
		version : "1.6rc6",
		plugin : {
			add : function(k, l, n) {
				var m = c.ui[k].prototype;
				for ( var j in n) {
					m.plugins[j] = m.plugins[j] || [];
					m.plugins[j].push([ l, n[j] ])
				}
			},
			call : function(j, l, k) {
				var n = j.plugins[l];
				if (!n) {
					return
				}
				for ( var m = 0; m < n.length; m++) {
					if (j.options[n[m][0]]) {
						n[m][1].apply(j.element, k)
					}
				}
			}
		},
		contains : function(k, j) {
			return document.compareDocumentPosition ? k
					.compareDocumentPosition(j) & 16 : k !== j && k.contains(j)
		},
		cssCache : {},
		css : function(j) {
			if (c.ui.cssCache[j]) {
				return c.ui.cssCache[j]
			}
			var k = c('<div class="ui-gen"></div>').addClass(j).css({
				position : "absolute",
				top : "-5000px",
				left : "-5000px",
				display : "block"
			}).appendTo("body");
			c.ui.cssCache[j] = !!((!(/auto|default/).test(k.css("cursor"))
					|| (/^[1-9]/).test(k.css("height"))
					|| (/^[1-9]/).test(k.css("width"))
					|| !(/none/).test(k.css("backgroundImage")) || !(/transparent|rgba\(0, 0, 0, 0\)/)
					.test(k.css("backgroundColor"))));
			try {
				c("body").get(0).removeChild(k.get(0))
			} catch (l) {
			}
			return c.ui.cssCache[j]
		},
		hasScroll : function(m, k) {
			if (c(m).css("overflow") == "hidden") {
				return false
			}
			var j = (k && k == "left") ? "scrollLeft" : "scrollTop", l = false;
			if (m[j] > 0) {
				return true
			}
			m[j] = 1;
			l = (m[j] > 0);
			m[j] = 0;
			return l
		},
		isOverAxis : function(k, j, l) {
			return (k > j) && (k < (j + l))
		},
		isOver : function(o, k, n, m, j, l) {
			return c.ui.isOverAxis(o, n, j) && c.ui.isOverAxis(k, m, l)
		},
		keyCode : {
			BACKSPACE : 8,
			CAPS_LOCK : 20,
			COMMA : 188,
			CONTROL : 17,
			DELETE : 46,
			DOWN : 40,
			END : 35,
			ENTER : 13,
			ESCAPE : 27,
			HOME : 36,
			INSERT : 45,
			LEFT : 37,
			NUMPAD_ADD : 107,
			NUMPAD_DECIMAL : 110,
			NUMPAD_DIVIDE : 111,
			NUMPAD_ENTER : 108,
			NUMPAD_MULTIPLY : 106,
			NUMPAD_SUBTRACT : 109,
			PAGE_DOWN : 34,
			PAGE_UP : 33,
			PERIOD : 190,
			RIGHT : 39,
			SHIFT : 16,
			SPACE : 32,
			TAB : 9,
			UP : 38
		}
	};
	if (d) {
		var f = c.attr, e = c.fn.removeAttr, h = "http://www.w3.org/2005/07/aaa", a = /^aria-/, b = /^wairole:/;
		c.attr = function(k, j, l) {
			var m = l !== undefined;
			return (j == "role" ? (m ? f.call(this, k, j, "wairole:" + l) : (f
					.apply(this, arguments) || "").replace(b, ""))
					: (a.test(j) ? (m ? k.setAttributeNS(h, j
							.replace(a, "aaa:"), l) : f.call(this, k, j
							.replace(a, "aaa:"))) : f.apply(this, arguments)))
		};
		c.fn.removeAttr = function(j) {
			return (a.test(j) ? this.each(function() {
				this.removeAttributeNS(h, j.replace(a, ""))
			}) : e.call(this, j))
		}
	}
	c.fn
			.extend({
				remove : function() {
					c("*", this).add(this).each(function() {
						c(this).triggerHandler("remove")
					});
					return i.apply(this, arguments)
				},
				enableSelection : function() {
					return this.attr("unselectable", "off").css(
							"MozUserSelect", "").unbind("selectstart.ui")
				},
				disableSelection : function() {
					return this.attr("unselectable", "on").css("MozUserSelect",
							"none").bind("selectstart.ui", function() {
						return false
					})
				},
				scrollParent : function() {
					var j;
					if ((c.browser.msie && (/(static|relative)/).test(this
							.css("position")))
							|| (/absolute/).test(this.css("position"))) {
						j = this.parents().filter(
								function() {
									return (/(relative|absolute|fixed)/).test(c
											.curCSS(this, "position", 1))
											&& (/(auto|scroll)/).test(c.curCSS(
													this, "overflow", 1)
													+ c.curCSS(this,
															"overflow-y", 1)
													+ c.curCSS(this,
															"overflow-x", 1))
								}).eq(0)
					} else {
						j = this.parents().filter(
								function() {
									return (/(auto|scroll)/).test(c.curCSS(
											this, "overflow", 1)
											+ c.curCSS(this, "overflow-y", 1)
											+ c.curCSS(this, "overflow-x", 1))
								}).eq(0)
					}
					return (/fixed/).test(this.css("position")) || !j.length ? c(document)
							: j
				}
			});
	c
			.extend(c.expr[":"],
					{
						data : function(l, k, j) {
							return !!c.data(l, j[3])
						},
						focusable : function(k) {
							var l = k.nodeName.toLowerCase(), j = c.attr(k,
									"tabindex");
							return (/input|select|textarea|button|object/
									.test(l) ? !k.disabled : "a" == l
									|| "area" == l ? k.href || !isNaN(j)
									: !isNaN(j))
									&& !c(k)["area" == l ? "parents"
											: "closest"](":hidden").length
						},
						tabbable : function(k) {
							var j = c.attr(k, "tabindex");
							return (isNaN(j) || j >= 0)
									&& c(k).is(":focusable")
						}
					});
	function g(m, n, o, l) {
		function k(q) {
			var p = c[m][n][q] || [];
			return (typeof p == "string" ? p.split(/,?\s+/) : p)
		}
		var j = k("getter");
		if (l.length == 1 && typeof l[0] == "string") {
			j = j.concat(k("getterSetter"))
		}
		return (c.inArray(o, j) != -1)
	}
	c.widget = function(k, j) {
		var l = k.split(".")[0];
		k = k.split(".")[1];
		c.fn[k] = function(p) {
			var n = (typeof p == "string"), o = Array.prototype.slice.call(
					arguments, 1);
			if (n && p.substring(0, 1) == "_") {
				return this
			}
			if (n && g(l, k, p, o)) {
				var m = c.data(this[0], k);
				return (m ? m[p].apply(m, o) : undefined)
			}
			return this.each(function() {
				var q = c.data(this, k);
				(!q && !n && c.data(this, k, new c[l][k](this, p))._init());
				(q && n && c.isFunction(q[p]) && q[p].apply(q, o))
			})
		};
		c[l] = c[l] || {};
		c[l][k] = function(o, n) {
			var m = this;
			this.namespace = l;
			this.widgetName = k;
			this.widgetEventPrefix = c[l][k].eventPrefix || k;
			this.widgetBaseClass = l + "-" + k;
			this.options = c.extend({}, c.widget.defaults, c[l][k].defaults,
					c.metadata && c.metadata.get(o)[k], n);
			this.element = c(o).bind("setData." + k, function(q, p, r) {
				if (q.target == o) {
					return m._setData(p, r)
				}
			}).bind("getData." + k, function(q, p) {
				if (q.target == o) {
					return m._getData(p)
				}
			}).bind("remove", function() {
				return m.destroy()
			})
		};
		c[l][k].prototype = c.extend({}, c.widget.prototype, j);
		c[l][k].getterSetter = "option"
	};
	c.widget.prototype = {
		_init : function() {
		},
		destroy : function() {
			this.element.removeData(this.widgetName).removeClass(
					this.widgetBaseClass + "-disabled " + this.namespace
							+ "-state-disabled").removeAttr("aria-disabled")
		},
		option : function(l, m) {
			var k = l, j = this;
			if (typeof l == "string") {
				if (m === undefined) {
					return this._getData(l)
				}
				k = {};
				k[l] = m
			}
			c.each(k, function(n, o) {
				j._setData(n, o)
			})
		},
		_getData : function(j) {
			return this.options[j]
		},
		_setData : function(j, k) {
			this.options[j] = k;
			if (j == "disabled") {
				this.element[k ? "addClass" : "removeClass"](
						this.widgetBaseClass + "-disabled " + this.namespace
								+ "-state-disabled").attr("aria-disabled", k)
			}
		},
		enable : function() {
			this._setData("disabled", false)
		},
		disable : function() {
			this._setData("disabled", true)
		},
		_trigger : function(l, m, n) {
			var p = this.options[l], j = (l == this.widgetEventPrefix ? l
					: this.widgetEventPrefix + l);
			m = c.Event(m);
			m.type = j;
			if (m.originalEvent) {
				for ( var k = c.event.props.length, o; k;) {
					o = c.event.props[--k];
					m[o] = m.originalEvent[o]
				}
			}
			this.element.trigger(m, n);
			return !(c.isFunction(p) && p.call(this.element[0], m, n) === false || m
					.isDefaultPrevented())
		}
	};
	c.widget.defaults = {
		disabled : false
	};
	c.ui.mouse = {
		_mouseInit : function() {
			var j = this;
			this.element.bind("mousedown." + this.widgetName, function(k) {
				return j._mouseDown(k)
			}).bind("click." + this.widgetName, function(k) {
				if (j._preventClickEvent) {
					j._preventClickEvent = false;
					return false
				}
			});
			if (c.browser.msie) {
				this._mouseUnselectable = this.element.attr("unselectable");
				this.element.attr("unselectable", "on")
			}
			this.started = false
		},
		_mouseDestroy : function() {
			this.element.unbind("." + this.widgetName);
			(c.browser.msie && this.element.attr("unselectable",
					this._mouseUnselectable))
		},
		_mouseDown : function(l) {
			if (l.originalEvent.mouseHandled) {
				return
			}
			(this._mouseStarted && this._mouseUp(l));
			this._mouseDownEvent = l;
			var k = this, m = (l.which == 1), j = (typeof this.options.cancel == "string" ? c(
					l.target).parents().add(l.target).filter(
					this.options.cancel).length
					: false);
			if (!m || j || !this._mouseCapture(l)) {
				return true
			}
			this.mouseDelayMet = !this.options.delay;
			if (!this.mouseDelayMet) {
				this._mouseDelayTimer = setTimeout(function() {
					k.mouseDelayMet = true
				}, this.options.delay)
			}
			if (this._mouseDistanceMet(l) && this._mouseDelayMet(l)) {
				this._mouseStarted = (this._mouseStart(l) !== false);
				if (!this._mouseStarted) {
					l.preventDefault();
					return true
				}
			}
			this._mouseMoveDelegate = function(n) {
				return k._mouseMove(n)
			};
			this._mouseUpDelegate = function(n) {
				return k._mouseUp(n)
			};
			c(document).bind("mousemove." + this.widgetName,
					this._mouseMoveDelegate).bind("mouseup." + this.widgetName,
					this._mouseUpDelegate);
			(c.browser.safari || l.preventDefault());
			l.originalEvent.mouseHandled = true;
			return true
		},
		_mouseMove : function(j) {
			if (c.browser.msie && !j.button) {
				return this._mouseUp(j)
			}
			if (this._mouseStarted) {
				this._mouseDrag(j);
				return j.preventDefault()
			}
			if (this._mouseDistanceMet(j) && this._mouseDelayMet(j)) {
				this._mouseStarted = (this._mouseStart(this._mouseDownEvent, j) !== false);
				(this._mouseStarted ? this._mouseDrag(j) : this._mouseUp(j))
			}
			return !this._mouseStarted
		},
		_mouseUp : function(j) {
			c(document).unbind("mousemove." + this.widgetName,
					this._mouseMoveDelegate).unbind(
					"mouseup." + this.widgetName, this._mouseUpDelegate);
			if (this._mouseStarted) {
				this._mouseStarted = false;
				this._preventClickEvent = true;
				this._mouseStop(j)
			}
			return false
		},
		_mouseDistanceMet : function(j) {
			return (Math.max(Math.abs(this._mouseDownEvent.pageX - j.pageX),
					Math.abs(this._mouseDownEvent.pageY - j.pageY)) >= this.options.distance)
		},
		_mouseDelayMet : function(j) {
			return this.mouseDelayMet
		},
		_mouseStart : function(j) {
		},
		_mouseDrag : function(j) {
		},
		_mouseStop : function(j) {
		},
		_mouseCapture : function(j) {
			return true
		}
	};
	c.ui.mouse.defaults = {
		cancel : null,
		distance : 1,
		delay : 0
	}
})(jQuery);
;